package ClassPack;

import java.util.Vector;


public class Class {

	private String 					m_class_name;
	private Vector <Class> 			referenced_classes;
	private Vector<String> 			m_methods;
	private Vector<Class>			m_inhereted_interfaces;
	private Class 					m_superClass;
	private Vector<Class>			m_subClasses;
	
	
	public Class() {
		m_class_name= new String();
		referenced_classes = new Vector<Class>();
		m_methods = new Vector<String>();
		setM_inhereted_interfaces(new Vector<Class>());
//		m_superClass = new Class();
		m_subClasses = new Vector<Class>();
	}

	public void addReferencedClass(Class c ){
		referenced_classes.add(c);
	}
	
	public void addMethod(String method) {
		m_methods.add(method);
	}

	public String getM_class_name() {
		return m_class_name;
	}

	public void setM_class_name(String m_class_name) {
		this.m_class_name = m_class_name;
	}

	public Vector<Class> getReferenced_classes() {
		return referenced_classes;
	}

	public void setReferenced_classes(Vector<Class> referenced_classes) {
		this.referenced_classes = referenced_classes;
	}

	public Vector<String> getM_methods() {
		return m_methods;
	}

	public void setM_methods(Vector<String> m_methods) {
		this.m_methods = m_methods;
	}
	public void setM_inhereted_interfaces(Vector<Class> m_inhereted_interfaces) {
		this.m_inhereted_interfaces = m_inhereted_interfaces;
	}

	public Vector<Class> getM_inhereted_interfaces() {
		return m_inhereted_interfaces;
	}

	public String toString() { 
		
		String ans = new String(this.m_class_name + ": \n refs:");
		for ( Class c : referenced_classes ) {
			ans += c.getM_class_name() + " ; ";
		}
		ans += "\n interfaces:";
		for(Class c : this.m_inhereted_interfaces)
			ans+=c.getM_class_name();
		return ans +"\n"; // + "\n";
	}

	public Class getM_superClass() {
		return m_superClass;
	}

	public void setM_superClass(Class class1) {
		m_superClass = class1;
	}

	public Vector<Class> getM_subClasses() {
		return m_subClasses;
	}

	public void setM_subClasses(Vector<Class> classes) {
		m_subClasses = classes;
	}

	public void add_inhereted_interface(Class c) {
		m_inhereted_interfaces.add(c);
		
	}

	
	
}
